package k1_exercise;

import java.util.Arrays;

public class Array_selectionSort {

    /**
     * 选择排序
     */
    public static void main(String[] args) {
        //给定原始乱序的数组
        int[] nums = {5,3,9,6,2,7,10,2,3,8,4};

        int minNumber;
        int minNumberIndex;

        //确定比较次数，同时也固定了当次循环的最小值位置
        for (int i = 0; i < nums.length-1; i++) {
            //假定当前 i 位置的元素是最小值，确定元素值和索引
            minNumber = nums[i];
            minNumberIndex = i;
            //从此位置向后遍历，找比此位置值小的元素
            for (int j = i+1; j < nums.length; j++) {
                //如果找到比当前位置小的元素，进行交换
                if(minNumber>nums[j]){
                    //重置最小值
                    minNumber = nums[j];
                    //重置最小值索引
                    minNumberIndex = j;
                }
            }
            // 判断是否需要交换
            if(minNumberIndex!=i){
                nums[minNumberIndex] = nums[i];
                nums[i] = minNumber;
            }
        }
        System.out.println(Arrays.toString(nums));
    }

}
